import { createStore } from 'vuex';
import { MenuData, MenuPerm } from '@/api/model-declare';

export default createStore({
  // 存储状态
  // 也就是驱动应用的数据源

  state: {
    menuList: new MenuData(),
  },

  // 更改 Vuex 的 store 中的状态的唯一方法是提交 mutation
  // mutation必须是同步的，如果要异步需要使用action
  mutations: {
    setMenuList(state, menuList: MenuData) {
      state.menuList = menuList;
    },

    getMenuList(state): MenuData {
      return state.menuList;
    },

    addMenuItem(state, menuItem: MenuPerm) {
      state.menuList.login_perm?.push(menuItem);
    },
  },
  actions: {},
  modules: {},
});
